package main

import (
	"encoding/json"
	"os"

	"gitee.com/GopherX/mqsdk/core"
	"gitee.com/GopherX/mqsdk/onebot"
)

func init() {
	core.Info = Info
	core.Event = Event
	core.MQSet = MQSet
	core.MQEnd = MQEnd
}

func 初始化应用目录() string {
	os.Mkdir("data/plugin/"+插件名称, 0o777)
	return "data/plugin/" + 插件名称
}

type PluginInfo struct {
	Name        string `json:"name"`
	Author      string `json:"author"`
	Description string `json:"description"`
	Version     string `json:"version"`
	Skey        string `json:"skey"`
	Sdk         string `json:"sdk"`
}

func Info() string {
	/*pluginInfo := fmt.Sprintf("插件名称{%s}\n插件版本{%s}\n插件作者{%s}\n插件说明{%s}\n插件skey{%s}\n插件sdk{%s}",
	PluginName, PluginVer, PluginAuthor, PluginDesc, PluginSkey, PluginSDK)*/
	//插件Skey
	PluginSkey := "SDG5D4Ys89h7DJ849d"
	//插件SDK
	PluginSDK := "S1"
	pluginInfo := PluginInfo{
		Name:        插件名称,
		Author:      插件作者,
		Description: 插件说明,
		Version:     插件版本,
		Skey:        PluginSkey,
		Sdk:         PluginSDK,
	}
	bytes, _ := json.Marshal(pluginInfo)
	return string(bytes)
}

func MQEnd() int64 {
	return 0
}

func MQSet() int64 {
	go 设置被按下()
	return 0
}

// Event 框架事件
// SelfID 机器人QQ, 多Q版用于判定哪个QQ接收到该消息
// MessageType 消息类型, 接收到消息类型，该类型可在常量表中查询具体定义，此处仅列举： -1 未定义事件 0,在线状态临时会话 1,好友信息 2,群信息 3,讨论组信息 4,群临时会话 5,讨论组临时会话 6,财付通转账 7,好友验证回复会话
// SubType 消息子类型, 此参数在不同消息类型下，有不同的定义，暂定：接收财付通转账时 1为好友 4为群临时会话 5为讨论组临时会话    有人请求入群时，不良成员这里为1
// GroupID 消息来源, 此消息的来源，如：群号、讨论组ID、临时会话QQ、好友QQ等
// UserID 触发对象_主动, 主动发送这条消息的QQ，踢人时为踢人管理员QQ
// NoticeID 触发对象_被动, 被动触发的QQ，如某人被踢出群，则此参数为被踢出人QQ
// Message 消息内容, 此参数有多重含义，常见为：对方发送的消息内容，但当消息类型为 某人申请入群，则为入群申请理由
// MessageNum 消息序号, 此参数暂定用于消息回复，消息撤回
// MessageID 消息ID, 此参数暂定用于消息回复，消息撤回
// RawMessage 原始信息, UDP收到的原始信息，特殊情况下会返回JSON结构（入群事件时，这里为该事件seq）
// Ret 回传文本指针, 此参数用于插件加载拒绝理由
func Event(selfID int64, mseeageType int, subType int,
	groupID int64, userID int64, noticeID int64,
	message string, messageNum int64,
	messageID int64, seq string, ret int32,
	retChan chan<- int) {
	xe := onebot.MQEvent{
		MQ_机器人QQ: selfID, MQ_消息类型: mseeageType, MQ_消息子类型: subType,
		MQ_消息来源: groupID, MQ_触发对象_主动: userID, MQ_触发对象_被动: noticeID,
		MQ_消息内容: message, MQ_消息序号: messageNum, MQ_消息ID: messageID,
		MQ_原始信息: seq, MQ_信息回传文本指针_Out: ret,
	}
	框架事件(xe, retChan)
}

// 吉祥物函数
func main() {
	println("Gophers Go Go Go!")
}
